A conventional way of automatically testing mobile applications (apps) is by randomly performing the actions in the User interface (UI) screens (i.e., “monkey testing”). Each action sequence represents a use case that may be performed by the user in practice. The monkey testing can find the crashes/exceptions in the sequences it explored so that the developers may fix them before they are encountered by the users.
However, the monkey testing has severe problems caused by the randomness in the exploration and it may explore the same sequence for many times but missing some other sequences. Monkey testing is not considered to be as intelligent as human testing.